/**
 * \file ThreadLauncher_Linux.h
 * \brief ThreadLauncher definition class for Linux platforms
 * \author Edouard ROGE
 * \date 31 august 2012
 */

#ifndef _THREADLAUNCHER_LINUX_
#define _THREADLAUNCHER_LINUX_

#include "Core/Memory/HeapObject.h"

class Thread;
/**
 * \class TaskLauncher
 * \brief Launch task and wait for it to finish
 */
class ThreadLauncher: public HeapObject
{
public:

	/**
	 * \fn ThreadLauncher();
	 * \brief Constructor
	 */
	ThreadLauncher();

	/**
	 * \fn virtual ~ThreadLauncher();
	 * \brief Destructor
	 */
	virtual ~ThreadLauncher();

	/**
	 * \fn virtual void WaitFor(Thread * _pThread);
	 * \param _pThread thread to wait for
	 * \brief wait for a thread to finish
	 */
	virtual void WaitFor(Thread * _pThread);

};

#endif /* _THREADLAUNCHER_LINUX_ */

